export namespace IGameSystem
{
    export interface ISecondLoad 
    {
        OnSecondLoad():void;
    }

    export const TryParseToSecondLoadSystem = function(obj : object) : ISecondLoad
    {
        var imp = obj as ISecondLoad;
        if(imp.OnSecondLoad == undefined) return null;
        return imp;
    }

    export interface IUpdateSystem 
    {
        Update():void;
    }

    export const TryParseToUpdateSystem = function(obj : object) : IUpdateSystem
    {
        var imp = obj as IUpdateSystem;
        if(imp.Update == undefined) return null;
        return imp;
    }

    export interface IAwakeSystem
    {
        Awake():void;
    }

    export const TryParseToAwkeSystem = function(obj : object) : IAwakeSystem
    {
        var imp = obj as IAwakeSystem;
        if(imp.Awake == undefined) return null;
        return imp;
    }
}